sync.Pool is a per-processor cache of reusable objects that reduces GC pressure by allowing frequently allocated short-lived objects to be reused rather than garbage collected.
Objects CAN be evicted at any GC cycle — never rely on persistence across requests
Always Reset/Clear objects before returning them to the pool — stale state causes bugs
Best for: byte buffers, encoder/decoder instances, temporary structs in hot paths
The standard library uses Pool internally: fmt package reuses printer objects, json uses encoder pools
Measure impact with benchmarks: sync.Pool is only beneficial when allocation cost is proven high